package com.neusoft.nepa.entity;

import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import java.io.Serializable;

public class ProvinceProblem implements Serializable {
    // 使用 JavaFX 的可观察属性替代原始类型
    private final StringProperty province = new SimpleStringProperty();
    private final IntegerProperty so2 = new SimpleIntegerProperty();
    private final IntegerProperty co = new SimpleIntegerProperty();
    private final IntegerProperty pm25 = new SimpleIntegerProperty();
    private final IntegerProperty aqi = new SimpleIntegerProperty();

    // 构造方法直接设置属性值
    public ProvinceProblem(String province, int so2, int co, int pm25, int aqi) {
        this.province.set(province);
        this.so2.set(so2);
        this.co.set(co);
        this.pm25.set(pm25);
        this.aqi.set(aqi);
    }

    // region 省份属性（StringProperty）
    public String getProvince() {
        return province.get();
    }

    public StringProperty provinceProperty() {
        return province;
    }

    public void setProvince(String province) {
        this.province.set(province);
    }
    // endregion

    // region SO2 属性（IntegerProperty）
    public int getSo2() {
        return so2.get();
    }

    public IntegerProperty so2Property() {  // 修正：返回 IntegerProperty
        return so2;
    }

    public void setSo2(int so2) {
        this.so2.set(so2);
    }
    // endregion

    // region CO 属性（IntegerProperty）
    public int getCo() {
        return co.get();
    }

    public IntegerProperty coProperty() {  // 修正：返回 IntegerProperty
        return co;
    }

    public void setCo(int co) {
        this.co.set(co);
    }
    // endregion

    // region PM2.5 属性（IntegerProperty）
    public int getPm25() {
        return pm25.get();
    }

    public IntegerProperty pm25Property() {  // 修正：返回 IntegerProperty
        return pm25;
    }

    public void setPm25(int pm25) {
        this.pm25.set(pm25);
    }
    // endregion

    // region AQI 属性（IntegerProperty）
    public int getAqi() {
        return aqi.get();
    }

    public IntegerProperty aqiProperty() {  // 修正：返回 IntegerProperty
        return aqi;
    }

    public void setAqi(int aqi) {
        this.aqi.set(aqi);
    }
    // endregion
}